﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using Oracle.DataAccess.Client;
using System.Data.OleDb;
namespace ddb_BT1
{
    public static class DataProviderConnection
    {
        public static IDbConnection getConnection()
        {
            switch (DDB_Setting.DBManagement)
            {
                case DatabaseType.Oracle:
                    return getConnectOracle();
                case DatabaseType.SqlServer:
                    return getConnectSqlServer();
            }
            return null;
        }
        public static IDbConnection getConnection(string stringConnect,DatabaseType type)
        {
            switch (type)
            {
                case DatabaseType.Oracle:
                    return getConnectOracle(stringConnect);
                case DatabaseType.SqlServer:
                    return getConnectSqlServer(stringConnect);
            }
            return null;
        }
        public static OracleConnection getConnectOracle()
        {
            try
            {
                OracleConnection con = new OracleConnection(DDB_Setting.connectString);
                con.Open();
                return con;
            }
            catch (Exception ex)
            {
                throw new Exception("Hệ thống hiện tại bị mất kết nối tới máy chủ chứa cơ sở dữ liệu. Xin vui lòng kiểm tra lại!" + ex.Message);
                //return null;
            }
        }
        public static SqlConnection getConnectSqlServer()
        {
            try
            {
                SqlConnection con = new SqlConnection(DDB_Setting.connectString);
                con.Open();
                return con;
            }  catch (Exception ex)
            {
                throw new Exception("Hệ thống hiện tại bị mất kết nối tới máy chủ chứa cơ sở dữ liệu. Xin vui lòng kiểm tra lại!" + ex.Message);
                //return null;
            }
          
        }

        public static OracleConnection getConnectOracle(string stringconnect)
        {
            try
            {
                OracleConnection con = new OracleConnection(stringconnect);
                con.Open();
                return con;
            }
            catch (Exception ex)
            {
                throw new Exception("Hệ thống hiện tại bị mất kết nối tới máy chủ chứa cơ sở dữ liệu. Xin vui lòng kiểm tra lại!" + ex.Message);
                //return null;
            }
        }
        public static SqlConnection getConnectSqlServer(string stringconnect)
        {
            try
            {
                SqlConnection con = new SqlConnection(stringconnect);
                con.Open();
                return con;
            }
            catch (Exception ex)
            {
                throw new Exception("Hệ thống hiện tại bị mất kết nối tới máy chủ chứa cơ sở dữ liệu. Xin vui lòng kiểm tra lại!" + ex.Message);
                //return null;
            }

        }

    }
}
